let gap = 0;

export function runTask(task) {
  return new Promise(resolve => {
    _runTask1(task, resolve);
  });
}

function _runTask1(task, callback) {
  requestIdleCallback(idle => {
    // 这个gap可以修改，最大为50ms，依据实际来
    if (idle.timeRemaining() > gap) {
      task();
      callback();
    } else {
      _runTask1(task, callback);
    }
  });
}